VERSION = 3.00JArial, 0, 9, 5, 15, 12, 21, 3, 0 MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 _tabdetailoptionsPixelsClass1_staticoptions_tabdetailoptionsform _htmlsty.vcxJArial, 0, 9, 5, 15, 12, 21, 3, 0 MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 _optionsPixelsClass4form_options '%o~U C CUTHISFORM RESETSETTINGSRELEASEClick,12?)JPROCEDURE Click THISFORM.ResetSettings() THISFORM.Release() ENDPROC AutoSize = .T. Top = 216 Left = 12 Height = 23 Width = 88 FontName = "MS Sans Serif" FontSize = 8 Caption = "\)Top = 216 Left = 216 Height = 23 Width = 72 FontName = "MS Sans Serif" FontSize = 8 Caption = "OK" Default = .F. TabIndex = 1 Name = "cmdOK" JArial, 0, 9, 5, 15, 12, 21, 3, 0 MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 _tablistoptions_tabhieroptions_tabhieroptions.pf1.pg4 cmdResetDatatArial, 0, 9, 5, 15, 12, 21, 3, 0 MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 MS Sans Serif, 0, 10, 7, 16, 13, 14, 3, 0   %ShbU CUTHISFORMRELEASEClick,12%) chkOneMany!Arial, 0, 9, 5, 15, 12, 21, 3, 0  _cbocolorsPixelsClass1combobox _cbocolors7color *color_access ^acolors[1,0] *color_assign comboboxPixelsBPROCEDURE Init DoDefault() THIS.Pf1.Pg1.Enabled = .F. ENDPROC _DoCreate = .T. Name = "_tabdetailoptions" cmdOK.ZOrderSet = 2 cmdOK.Name = "cmdOK" cmdCancel.ZOrderSet = 3 cmdCancel.Name = "cmdCancel" cmdReset.Name = "cmdReset" Label1.Left = 14 Label1.Top = 12 Label1.ZOrderSet = 4 Label1.Name = "Label1" pf1.ErasePage = .T. pf1.pg1.cboBorderColor.Name = "cboBorderColor" pf1.pg1.Label2.Name = "Label2" pf1.pg1.cboBackColor.Name = "cboBackColor" pf1.pg1.Label3.Name = "Label3" pf1.pg1.Label4.Name = "Label4" pf1.pg1.Label5.Name = "Label5" pf1.pg1.spnBorder.Name = "spnBorder" pf1.pg1.txtImage.Name = "txtImage" pf1.pg1.cmdImage.Name = "cmdImage" pf1.pg1.Enabled = .F. pf1.pg1.PageOrder = 3 pf1.pg1.Name = "pg1" pf1.pg2.Label5.Name = "Label5" pf1.pg2.txtFont.Name = "txtFont" pf1.pg2.cmdFont.Name = "cmdFont" pf1.pg2.label22.Name = "label22" pf1.pg2.CboForecolor.Name = "CboForecolor" pf1.pg2.Label13.Name = "Label13" pf1.pg2.spnFontSize.Name = "spnFontSize" pf1.pg2.PageOrder = 1 pf1.pg2.Name = "pg2" pf1.pg3.Label5.Name = "Label5" pf1.pg3.txtClass.Name = "txtClass" pf1.pg3.PageOrder = 2 pf1.pg3.Name = "pg3" pf1.ZOrderSet = 0 pf1.Name = "pf1" Top = 120 Left = 251 Height = 23 Width = 104 FontName = "MS Sans Serif" FontSize = 8 Caption = "Re\)IPROCEDURE Click THISFORM.SaveSettings() THISFORM.Release() ENDPROC nTop = 12 Left = 264 Height = 23 Width = 72 Caption = "OK" Default = .T. TabIndex = 2 Name = "cmdDone"  getfontnamecmdDone commandbutton commandbuttoncheckbox commandbuttoncfontnamevar *savesettings Height = 83 Width = 346 DoCreate = .T. AutoCenter = .T. BorderStyle = 2 Caption = "Pick Font" MaxButton = .F. MinButton = .F. WindowType = 1 cfontnamevar = Name = "getfontname" formosettings oengine lskipquotes lsaveempty *savesettings *restoresettings *registersetting ^aprops[1,0] *resetsettings *delarow *unregistersetting *getpropflags Height = 250 Width = 375 DoCreate = .T. AutoCenter = .T. BorderStyle = 2 Caption = "Layout Options - " MaxButton = .F. MinButton = .F. WindowType = 1 HelpContextID = 1895828906 Name = "_options" @ ''4f%UdTCImages:JPG,GIF%CC0 G BTU LCFILENAMETHISPARENTTXTIMAGEVALUEClick,1rAa2)'form _cbocolors2PROCEDURE Click THISFORM.cParentAlias = "" THISFORM.cParentDBC = "" THISFORM.cParentSource = "" THIS.Parent.TxtTable.Value = "" THISFORM.RefreshControls() ENDPROC _tabhieroptions.pf1.pg4checkbox_tabhieroptions.pf1.pg4label_tabhieroptions.pf1.pg4 cboChildField5 K]%iwU CT-UTHISPF1PG1ENABLEDInit,1A17)Top = 120 Left = 11 Height = 15 Width = 138 FontName = "MS Sans Serif" FontSize = 8 Caption = "Display one to many \)|FontName = "MS Sans Serif" FontSize = 8 Enabled = .F. Height = 23 Left = 119 Top = 12 Width = 192 Name = "txtTable" _tabhieroptions.pf1.pg4textboxtextboxFontName = "MS Sans Serif" FontSize = 8 Height = 24 Left = 119 Style = 2 Top = 48 Width = 192 Name = "cboDisplayField" _tabhieroptions.pf1.pg4cboDisplayFieldcomboboxcomboboxTop = 120 Left = 11 Height = 15 Width = 138 FontName = "MS Sans Serif" FontSize = 8 Caption = "Show \ 13 .or. ; fontmetric(4, 'MS Sans Serif', 8, '') <> 2 .or. ; fontmetric(6, 'MS Sans Serif', 8, '') <> 5 .or. ; fontmetric(7, 'MS Sans Serif', 8, '') <> 11 this.SetAll('FontName', 'Arial') endif DIMENSION agetfonts[1] AFONT(agetfonts) FOR i = 1 TO ALEN(agetfonts) THIS.cboFonts.AddItem(agetfonts[m.i]) ENDFOR THIS.cboFonts.Value = THIS.cboFonts.List[1] THIS.txtSample.DisabledForeColor = THIS.cboFonts.ForeColor THIS.txtSample.FontName = THIS.cboFonts.List[1] ENDPROC FontName = "MS Sans Serif" FontSize = 8 Height = 23 KeyboardLowValue = 0 Left = 83 SpinnerLowValue = 0.00 TabIndex = 5 Top = 48 Width = 48 Name = "spnFontSize" _staticoptions.pf1.pg2 spnFontSizespinner_staticoptions.pf1.pg2Label13Top = 186 Left = 90 Height = 23 Width = 72 FontName = "MS Sans Serif" FontSize = 8 Cancel = .T. Caption = "Cancel" TabIndex = 4 Name = "cmdCancel" FontName = "MS Sans Serif" FontSize = 8 BackStyle = 0 Caption = "Fore\0 THIS.pf1.pg4.cboDisplayField.Value = THIS.pf1.pg4.cboDisplayField.List[1] ENDIF THIS.pf1.pg4.cboChildField.Enabled = .T. THIS.pf1.pg4.chkOneMany.Enabled = .T. ENDIF ENDPROC PROCEDURE Init DoDefault() THIS.Pf1.Pg1.Enabled = .F. THIS.UnRegisterSetting("bordercolor") THIS.UnRegisterSetting("bgcolor") THIS.UnRegisterSetting("background") THIS.UnRegisterSetting("border") IF USED() THIS.cChildAlias = JUSTSTEM(CURSORGETPROP("SourceName")) ENDIF ENDPROC PROCEDURE Show LPARAMETERS nstyle LOCAL i,lcValue DoDefault() FOR i = 1 TO ALEN(THIS.oEngine.aWizFields) * Need to skip for Memo,General types THIS.pf1.pg4.cboChildField.AddItem(THIS.oEngine.aWizFields[m.i]) ENDFOR IF THIS.pf1.pg4.cboChildField.ListCount>0 AND EMPTY(THIS.pf1.pg4.cboChildField.Value) THIS.pf1.pg4.cboChildField.Value = THIS.pf1.pg4.cboChildField.List[1] ELSE * Since values are set in Init before combo filled, we need to reset value here. THIS.pf1.pg4.cboChildField.Value = THIS.pf1.pg4.cboChildField.Value ENDIF lcValue=THIS.pf1.pg4.cboDisplayField.Value THIS.RefreshControls() THIS.pf1.pg4.cboDisplayField.Value=lcValue ENDPROC PROCEDURE Load DoDefault() THIS.RegisterSetting("cDisplayField","THIS.pf1.pg4.cboDisplayField.Value","cDisplayField",,.T.) THIS.RegisterSetting("lOneToMany","THIS.pf1.pg4.chkOneMany.Value","lOneToMany",,.T.,,1) THIS.RegisterSetting("cParentDBC","THIS.cParentDBC","cParentDBC",,.T.) THIS.RegisterSetting("cParentSource","THIS.cParentSource","cParentSource",,.T.) THIS.RegisterSetting("cLinkField","THIS.pf1.pg4.cboChildField.Value","cLinkField",,.T.) THIS.RegisterSetting("cParentAlias","THIS.cParentAlias","cParentAlias") THIS.RegisterSetting("cChildAlias","THIS.cChildAlias","cChildAlias",,.T.) THIS.RegisterSetting("lCaption","THIS.pf1.pg3.chkCaptions.Value","lCaption",,.T.,,1) ENDPROC PROCEDURE Destroy SELECT (THIS.oEngine.cWizAlias) DoDefault() ENDPROC FontName = "MS Sans Serif" FontSize = 8 Height = 23 KeyboardLowValue = 0 Left = 119 SpinnerLowValue = 0.00 TabIndex = 9 Top = 120 Width = 48 Value = 0 Name = "spnBorder"  spnBorderspinnerspinnerFontName = "MS Sans Serif" FontSize = 8 Caption = "Border \ 13 .or. ; fontmetric(4, 'MS Sans Serif', 8, '') <> 2 .or. ; fontmetric(6, 'MS Sans Serif', 8, '') <> 5 .or. ; fontmetric(7, 'MS Sans Serif', 8, '') <> 11 THIS.SetAll('FontName', 'Arial') ENDIF ENDPROC FontName = "MS Sans Serif" FontSize = 8 Caption = "Border \C cChildAliasTHIS.cChildAlias cChildAliasaJClCaptionTHIS.pf1.pg3.chkCaptions.ValuelCaptionaUTHISREGISTERSETTINGF CUTHISOENGINE CWIZALIASrefreshcontrols,InitShowLoadWDestroy1q1!1AQqqa!AAAAqqA3AqaA3qbA"RA3AA32]x$%(3@ == / I)H DoCreate = .T. Visible = .T. Name = "_listoptions" cmdOK.Name = "cmdOK" cmdCancel.Name = "cmdCancel" cmdReset.Name = "cmdReset" Label1.Name = "Label1" pf1.ErasePage = .T. pf1.pg1.cboBorderColor.Name = "cboBorderColor" pf1.pg1.Label2.Name = "Label2" pf1.pg1.cboBackColor.Name = "cboBackColor" pf1.pg1.Label3.Name = "Label3" pf1.pg1.Label4.Name = "Label4" pf1.pg1.Label5.Name = "Label5" pf1.pg1.spnBorder.Name = "spnBorder" pf1.pg1.txtImage.Name = "txtImage" pf1.pg1.cmdImage.Name = "cmdImage" pf1.pg1.Name = "pg1" pf1.pg2.Label5.Name = "Label5" pf1.pg2.txtFont.Name = "txtFont" pf1.pg2.cmdFont.Name = "cmdFont" pf1.pg2.label22.Name = "label22" pf1.pg2.cboForecolor.Name = "cboForecolor" pf1.pg2.Label13.Name = "Label13" pf1.pg2.spnFontSize.Name = "spnFontSize" pf1.pg2.Name = "pg2" pf1.pg3.Label5.Name = "Label5" pf1.pg3.txtClass.Left = 96 pf1.pg3.txtClass.Top = 12 pf1.pg3.txtClass.Name = "txtClass" pf1.pg3.Name = "pg3" pf1.Name = "pf1" PROCEDURE savesettings LOCAL i,lnAlen,lnAlen2,lnPos,lcValue,lcControlProperty,lcQuoteDelim,lcQuoteDelim2 LOCAL lSaveEmpty,lSkipQuotes lnAlen=ALEN(THIS.aProps,1) DIMENSION THIS.oSettings.aSettings[1] DIMENSION THIS.oSettings.aSaveOptions[1,5] STORE "" TO THIS.oSettings.aSettings STORE "" TO THIS.oSettings.aSaveOptions FOR i = 1 TO lnAlen THIS.GetPropFlags(THIS.aProps[m.i,7]) lcControlProperty = THIS.aProps[m.i,2] lcValue = &lcControlProperty. IF VARTYPE(lcValue)="C" lcValue = ALLTRIM(lcValue) ENDIF IF EMPTY(lcValue) AND !THIS.lSaveEmpty LOOP ENDIF IF !EMPTY(THIS.oSettings.aSettings[1]) lnAlen2=ALEN(THIS.oSettings.aSettings,1) DIMENSION THIS.oSettings.aSettings[lnAlen2+1] DIMENSION THIS.oSettings.aSaveOptions[lnAlen2+1,5] ENDIF lnAlen2=ALEN(THIS.oSettings.aSettings,1) DO CASE CASE THIS.lSkipQuotes lcQuoteDelim=[] lcQuoteDelim2=[] CASE ATC(["],TRANS(lcValue))#0 lcQuoteDelim="[" lcQuoteDelim2="]" OTHERWISE lcQuoteDelim=["] lcQuoteDelim2=["] ENDCASE THIS.oSettings.aSettings[lnAlen2] = THIS.aProps[m.i,3]+"="+lcQuoteDelim+TRANS(lcValue)+lcQuoteDelim2 THIS.oSettings.aSaveOptions[lnAlen2,1] = THIS.aProps[m.i,1] &&property name THIS.oSettings.aSaveOptions[lnAlen2,2] = lcValue &&property setting THIS.oSettings.aSaveOptions[lnAlen2,3] = THIS.aProps[m.i,5] &&generate before THIS.oSettings.aSaveOptions[lnAlen2,4] = THIS.aProps[m.i,4] &&style property THIS.oSettings.aSaveOptions[lnAlen2,5] = THIS.aProps[m.i,6] &&wizard flags ENDFOR ENDPROC PROCEDURE restoresettings LOCAL i,lnAlen,lnPos,lcSaveExact,lcProperty,lcControlProperty lnAlen=ALEN(THIS.aProps,1) lcSaveExact = SET("EXACT") SET EXACT ON FOR i = 1 TO lnAlen lcProperty = THIS.aProps[m.i,1] lcControlProperty = THIS.aProps[m.i,2] IF EMPTY(lcProperty) OR EMPTY(lcControlProperty) LOOP ENDIF lnPos=ASCAN(THIS.oSettings.aSaveOptions,lcProperty) IF lnPos#0 &lcControlProperty. = THIS.oSettings.aSaveOptions[lnPos+1] ENDIF ENDFOR SET EXACT &lcSaveExact ENDPROC PROCEDURE registersetting LPARAMETER tcProp,tcControl,tcHTMLProp,tcStyleProperty,tlGenBefore,tnWizardFlags,tnPropertyFlags * tlSkipQuotes,,tlSaveEmpty * tcProp name of property being customized (ex. "bgcolor") * tcControl name of control and property to bind (ex. "THIS.cboColor.Value") * tcHTMLProp HTML property that is being set (ex. "oGenTag.bgColor") * tcStyleProperty name of property for Style (e.g., Font-Family) * tlGenBefore whether property is set before or after _oHTML.Generate * is called where HTML table is generated * tnWizardFlags flags returned to the Wizard for processing (reserved for Wizards) * -- ImageFile 1 whether property references image file for lCopyImages in Wizard * tnPropertyFlags flags used by Options dialogs to process properties * -- SkipQuotes 1 whether expression created has quotes around value -- BITTEST(THIS.aProps[m.i,7],0) * -- SaveEmpty 2 whetber to write out property if value is EMPTY() -- BITTEST(THIS.aProps[m.i,7],1) LOCAL lnAlen,i lnAlen=0 IF VARTYPE(tlGenBefore)#"L" tlGenBefore=.F. ENDIF IF VARTYPE(tnWizardFlags)#"N" tnWizardFlags=0 ENDIF IF VARTYPE(tnPropertyFlags)#"N" tnPropertyFlags=0 ENDIF IF EMPTY(THIS.aProps[1]) DIMENSION THIS.aProps[1,7] ELSE * Check if Property already exists and overwrite FOR i = 1 TO ALEN(THIS.aProps,1) IF UPPER(THIS.aProps[m.i,1]) == UPPER(tcProp) lnAlen = m.i EXIT ENDIF ENDFOR IF lnAlen=0 DIMENSION THIS.aProps[ALEN(THIS.aProps,1)+1,7] ENDIF ENDIF lnAlen = IIF(lnAlen=0,ALEN(THIS.aProps,1),lnAlen) THIS.aProps[lnAlen,1] = tcProp THIS.aProps[lnAlen,2] = tcControl THIS.aProps[lnAlen,3] = IIF(EMPTY(tcHTMLProp),tcProp,tcHTMLProp) THIS.aProps[lnAlen,4] = tcStyleProperty THIS.aProps[lnAlen,5] = tlGenBefore THIS.aProps[lnAlen,6] = tnWizardFlags THIS.aProps[lnAlen,7] = tnPropertyFlags ENDPROC PROCEDURE resetsettings DIMENSION THIS.oSettings.aSettings[1] DIMENSION THIS.oSettings.aSaveOptions[1,5] STORE "" TO THIS.oSettings.aSettings STORE "" TO THIS.oSettings.aSaveOptions ENDPROC PROCEDURE delarow * Generic routine to delete an array element. If the array is * multi-dimensional, then a whole row is deleted. * * aArray- array to scan * wziRow - row to delete LPARAMETERS aArray,wziRow LOCAL nColumns IF ALEN(aArray,1) 13 .or. ; fontmetric(4, 'MS Sans Serif', 8, '') <> 2 .or. ; fontmetric(6, 'MS Sans Serif', 8, '') <> 5 .or. ; fontmetric(7, 'MS Sans Serif', 8, '') <> 11 THIS.SetAll('FontName', 'Arial') ENDIF ENDPROC PROCEDURE cexpression_access LOCAL lcColor1,lcColor2,lnRows lcColor1 = ALLTRIM(THIS.cboColors1.Color) lcColor2 = ALLTRIM(THIS.cboColors2.Color) lnRows = THIS.spnRows.Value DO CASE CASE EMPTY(lcColor1) AND EMPTY(lcColor2) AND lnRows=1 THIS.cexpression = "" OTHERWISE THIS.cexpression = [bgcolor="{{IIF(MOD(INT((RECNO()-1)/] + TRANS(lnRows) + [),2)=0,']+; lcColor1 + [','] + lcColor2 + [')}}"] ENDCASE RETURN THIS.cexpression ENDPROC PROCEDURE cexpression_assign LPARAMETERS vNewVal LOCAL lnCharPos,lcStr,lcCharStr THIS.cExpression = vNewVal IF EMPTY(vNewVal) RETURN ENDIF * Get row value lcCharStr = "" lcStr = "" lnCharPos = RAT("/",vNewVal) IF lnCharPos > 0 lcStr="" DO WHILE .T. lnCharPos = lnCharPos + 1 lcCharStr = SUBSTR(vNewVal,lnCharPos,1) IF VAL(lcCharStr)=0 lcStr=VAL(lcStr) lcStr = IIF(lcStr=0,1,lcStr) THIS.spnRows.Value = lcStr EXIT ENDIF lcStr = lcStr + lcCharStr ENDDO ENDIF * Get first row color lcCharStr = "" lcStr = "" lnCharPos = RAT(",",vNewVal,2) IF lnCharPos > 0 lcStr="" lnCharPos = lnCharPos + 1 DO WHILE .T. lnCharPos = lnCharPos + 1 lcCharStr = SUBSTR(vNewVal,lnCharPos,1) IF lcCharStr="'" lcStr = IIF(EMPTY(lcStr),"",lcStr) THIS.cboColors1.Color = lcStr EXIT ENDIF lcStr = lcStr + lcCharStr ENDDO ENDIF * Get next row color lcCharStr = "" lcStr = "" lnCharPos = RAT(",",vNewVal) IF lnCharPos > 0 lcStr="" lnCharPos = lnCharPos + 1 DO WHILE .T. lnCharPos = lnCharPos + 1 lcCharStr = SUBSTR(vNewVal,lnCharPos,1) IF lcCharStr="'" lcStr = IIF(EMPTY(lcStr),"",lcStr) THIS.cboColors2.Color = lcStr EXIT ENDIF lcStr = lcStr + lcCharStr ENDDO ENDIF ENDPROC  PROCEDURE color_access IF THIS.ListIndex < 2 RETURN "" ELSE RETURN THIS.aColors[THIS.ListIndex-1,2] ENDIF ENDPROC PROCEDURE color_assign LPARAMETERS vNewVal LOCAL i IF EMPTY(vNewVal) THIS.Value = THIS.List[1] ELSE FOR i = 1 TO ALEN(THIS.aColors,1) IF UPPER(vNewVal)==UPPER(THIS.aColors[m.i,2]) THIS.Value = THIS.aColors[m.i,1] ENDIF ENDFOR ENDIF ENDPROC PROCEDURE Init LOCAL lcBMPPath * Colors #DEFINE DEFCOLOR "Default" #DEFINE BLACK "Black" #DEFINE MAROOM "Maroon" #DEFINE GREEN "Green" #DEFINE OLIVE "Olive" #DEFINE NAVY "Navy" #DEFINE PURPLE "Purple" #DEFINE TEAL "Teal" #DEFINE GRAY "Gray" #DEFINE SILVER "Silver" #DEFINE RED "Red" #DEFINE LIME "Lime" #DEFINE YELLOW "Yellow" #DEFINE BLUE "Blue" #DEFINE FUCHSIA "Fuchsia" #DEFINE AQUA "Aqua" #DEFINE WHITE "White" * Used for localization. #DEFINE DEFCOLOR_LOC "Default" #DEFINE BLACK_LOC "Black" #DEFINE MAROOM_LOC "Maroon" #DEFINE GREEN_LOC "Green" #DEFINE OLIVE_LOC "Olive" #DEFINE NAVY_LOC "Navy" #DEFINE PURPLE_LOC "Purple" #DEFINE TEAL_LOC "Teal" #DEFINE GRAY_LOC "Gray" #DEFINE SILVER_LOC "Silver" #DEFINE RED_LOC "Red" #DEFINE LIME_LOC "Lime" #DEFINE YELLOW_LOC "Yellow" #DEFINE BLUE_LOC "Blue" #DEFINE FUCHSIA_LOC "Fuchsia" #DEFINE AQUA_LOC "Aqua" #DEFINE WHITE_LOC "White" LOCAL i DIMENSION THIS.aColors[16,2] THIS.aColors[1,1] = BLACK_LOC THIS.aColors[1,2] = BLACK THIS.aColors[2,1] = MAROOM_LOC THIS.aColors[2,2] = MAROOM THIS.aColors[3,1] = GREEN_LOC THIS.aColors[3,2] = GREEN THIS.aColors[4,1] = OLIVE_LOC THIS.aColors[4,2] = OLIVE THIS.aColors[5,1] = NAVY_LOC THIS.aColors[5,2] = NAVY THIS.aColors[6,1] = PURPLE_LOC THIS.aColors[6,2] = PURPLE THIS.aColors[7,1] = TEAL_LOC THIS.aColors[7,2] = TEAL THIS.aColors[8,1] = GRAY_LOC THIS.aColors[8,2] = GRAY THIS.aColors[9,1] = SILVER_LOC THIS.aColors[9,2] = SILVER THIS.aColors[10,1] = RED_LOC THIS.aColors[10,2] = RED THIS.aColors[11,1] = LIME_LOC THIS.aColors[11,2] = LIME THIS.aColors[12,1] = YELLOW_LOC THIS.aColors[12,2] = YELLOW THIS.aColors[13,1] = BLUE_LOC THIS.aColors[13,2] = BLUE THIS.aColors[14,1] = FUCHSIA_LOC THIS.aColors[14,2] = FUCHSIA THIS.aColors[15,1] = AQUA_LOC THIS.aColors[15,2] = AQUA THIS.aColors[16,1] = WHITE_LOC THIS.aColors[16,2] = WHITE THIS.AddItem(DEFCOLOR_LOC) lcBMPPath=IIF(VERSION(2)=0,"",HOME()+"FFC\Graphics\") FOR i = 1 TO ALEN(THIS.aColors,1) THIS.AddItem(" "+THIS.aColors[m.i,1]) THIS.Picture[m.i+1] = lcBMPPath+"_"+FORCEEXT(THIS.aColors[m.i,2],"BMP") ENDFOR THIS.Value = THIS.List[1] ENDPROC ! !!'%~ HU   J( T C  %C B-C T CT C CSVT ( C  C  C

 H]` d%CN  C  C C Ca %CHTML DataPaging  C  e? C  C C  C  f`C TC %CTCC )T \C _0.HTM)T !\C _1.HTM)T "\C _2.HTMC C ! C " T  %C # C $ %C #0 %C %B- % TCWFT $MSELECT &lcDisplayfield.,0 FROM (THIS.cParentSource) INTO CURSOR SYS(2015) %C U FB-)T \C _2.CSV( C  T $ FC  ,CCCC # ' #6 &Ca %CN yCa %CHTML DataPaging  C  C C ! (T )T *T +,-%C  %C .T . $(C$%CC fCC .f}T  ! C / 0 C %C # CC ' &% 1 C  #C  C Ca <C  C 2T )T *C +,3C " ( C / 0T )T *C +,3C (T 4- C / 0 C 5C +,3C  (%C6O C 7U8 LATMPFIELDS LNSAVEAREALCPATHLCDISPLAYFIELDI LATMPFIELDS2 LCSAVECOLOR LCSAVEIMAGE LCSAVETITLETHISAGENERATEDFILES NLINKFIELD AFIELDLIST CLEANFIELDS NFIELDCOUNTCCSVFILECOUTFILE CCSVFILE2UPDATEGENFILESBODYADDITEM NTABLESTYLE NDATAPAGESIZEADD_PAGEBUTTONS ADD_DATAITEMADD_REPEATTABLEADD_FRAME_SCRIPTADDGENHTMLFIELDADD_REPEATTABLE_SCRIPTADD_NAVBUTTONS ADD_FIELDSADD_NAVBUTTON_SCRIPTCOUTFILE_FRAME0COUTFILE_FRAME1COUTFILE_FRAME2 CPARENTSOURCE CDISPLAYFIELD CPARENTDBC ADD_CAPTION CCHILDALIASSAVEFILEBGCOLOR BACKGROUNDHEADTITLEITEM CLINKFIELD RELEASEITEMSSETITEMS LONETOMANYADD_FILTER_SCRIPTADDTEXTLBODYTAG MAKEFRAMESETOWIZARD RESETDEFAULTST%%CN Cd I T&CSC4 0C TC5 TC5 C C ULNFRAMEPERCENTTHIS NFRAMEPERCENTADDITEMCOUTFILE_FRAME0COUTFILE_FRAME1COUTFILE_FRAME2 # T Ctable T  T # T C _%C  T  TCthead TtblvfpdataheaderTCtr !TC C6% C  nT C( %,T T CEXACTvG TCC f$%C TCSET EXACT &lcExact ITC&TC  C6KC

C
TCtbody TCtr "Tselectrecord(this)(&TC  C6GC Cp UTAFIELDS TLHIERVIEWLNCOUNTLCFIELDLCSTR LNFIELDCOUNTOTAG LCCAPTIONLNPOSLCEXACTTHISOGENTAGBODYADDTAGIDCTABLEIDDATASRCCDATASRC DATAPAGESIZE NDATAPAGESIZECREPEATTABLESTYLESTYLE CDISPLAYFIELDADDITEMONCLICK-*CHTMLSortTableColumnUTHISBODYADDGENHTMLFIELDq TaTCDiv%C sT  (Cj% C
  T-TCTCC.C :  HC U TAFIELDSLNCOUNTLCFIELD LLFIRSTFIELDLCFIELDCAPTIONTHISOGENTAGBODYADDTAGCREPEATTABLESTYLESTYLEADDITEMCDATASRC%CCC0 =TTCATC C  C C C C CU TCCSVFILELCSTRTHISCCSVFILECDATASRCBODYADDITEM@T&CHTML PageButtonsU TLSKIPFRAMETHIS LSKIPFRAMEBODYADDGENHTMLFIELD(%CHTML NavButtonsUTHISBODYADDGENHTMLFIELD@T&CHTML FrameScriptU TLSKIPFRAMETHIS LSKIPFRAMEBODYADDGENHTMLFIELD*'CHTML FilterScriptUTHISBODYADDGENHTMLFIELD,)CHTMLNavButtonsCodeUTHISBODYADDGENHTMLFIELD$C(x%%CC GMUtCBCC UTAFIELDSITHISDELAROWp%CB%CC NCTCU TCFILENAMETHISAGENERATEDFILES &%C   <B%Cd J(TCC %CCUAARRAYWZIROWNCOLUMNS%C %BTCDivTTCBCCCU TCCAPTIONTHISLCAPTIONOGENTAGBODYADDTAGSTYLECREPEATTABLESTYLEADDTEXTqT TTTTTT-UTHIS NDATAPAGESIZE CPARENTSOURCE CDISPLAYFIELD CPARENTDBC CCHILDALIAS CLINKFIELD LONETOMANY BCUTHISGENERATETABDATAgeneratetabdata, makeframeset add_repeattable add_repeattable_scriptu add_fields add_dataitemadd_pagebuttonsadd_navbuttonsadd_frame_scriptgadd_filter_scriptadd_navbutton_script, cleanfieldsyupdategenfiles(delarow add_caption resetdefaults generatetable1aCaqA1a21bA1AQBB"1QA1111!qAAqA11A3!1QA111a3!1AAaAAAA1aAA11q111q1q1ASA2qQAb1AA31a2bAaqArAaAQAaQAaAa!sarAB33q12aAqAQqA3qqAB3ra3Q3ra3q33qvBQQAA2qAAqA3raAAq1!AAA3qAAaq321Z<r0 V  /!"V!!&":"-e""1"a$5$j%F%u'Q'(j(`)w)))!  %  Ut#  TC   J( J( (mCC  TC  "lcValue = &lcControlProperty. %CC)TC%C  K.%CC TC   TC  Ha  T T C"C_=T[T]2aT"T"9T C  =C_,T C  T ,T C  ,T C  ,T C  UILNALENLNALEN2LNPOSLCVALUELCCONTROLPROPERTY LCQUOTEDELIM LCQUOTEDELIM2 LSAVEEMPTY LSKIPQUOTESTHISAPROPS OSETTINGS ASETTINGS ASAVEOPTIONS GETPROPFLAGSBTCTCEXACTvG (!TC TC %CC .TC %>&lcControlProperty. = THIS.oSettings.aSaveOptions[lnPos+1] SET EXACT &lcSaveExact U ILNALENLNPOS LCSAVEEXACT LCPROPERTYLCCONTROLPROPERTYTHISAPROPS OSETTINGS ASAVEOPTIONSp  T%CLW T-%CN} T%CN T%CC  n(C 3"%CC  fCf/T !%j" C 'TCC 6T T ,T CC6T T T T U TCPROP TCCONTROL TCHTMLPROPTCSTYLEPROPERTY TLGENBEFORE TNWIZARDFLAGSTNPROPERTYFLAGSLNALENITHISAPROPSUJ(J(UTHIS OSETTINGS ASETTINGS ASAVEOPTIONS &%C   <B%Cd J(TCC %CCUAARRAYWZIROWNCOLUMNS %C%B(C"%CfCC f C C C BUTCPROP ATMPPROPSITHISAPROPSDELAROW6TCTCUTNFLAGTHIS LSKIPQUOTES LSAVEEMPTY CUNSTYLETHISRESTORESETTINGS%C MS Sans Serif$ !C MS Sans Serif$ !C MS Sans Serif$ !C MS Sans Serif$   CFontNameArialUTHISSETALL savesettings,restoresettingsQregistersetting resetsettingsdelarowi unregistersettingm getpropflagsr Show Init 11R111r!QAAAqAAA3QAarAAAA3QAQAQAba!AAA!AAr31113raAAq1!AAA3qAA!Aq1AAA3qaa3q3d A2+$/< UD_y{d9&uN:fx) \]%?UF%  B?BCUTHIS LISTINDEXACOLORS%C4TC(C"%CfCC fTC UVNEWVALITHISVALUELISTACOLORS#!TBlack!TBlack"TMaroon"TMaroon!TGreen!TGreen!TOlive!TOlive TNavy TNavy"TPurple"TPurple TTeal TTeal TGray TGray"T Silver"T SilverT RedT Red T Lime T Lime"T Yellow"T Yellow T Blue T Blue#TFuchsia#TFuchsia TAqua TAqua!TWhite!TWhiteCDefault2TCChCQ FFC\Graphics\6(C"C C ;T _CC BMPTCU LCBMPPATHITHISACOLORSADDITEMPICTUREVALUELIST color_access, color_assignInite1AA3qqq!AAA2qpqa!!!!!!!!11r"!Ar1ry  ))PROCEDURE generatetabdata LOCAL laTmpFields,lnSaveArea,lcPath,lcDisplayfield,i,laTmpFields2 LOCAL lcSaveColor,lcSaveImage,lcSaveTitle DIMENSION laTmpFields[1] DIMENSION laTmpFields2[1] DIMENSION THIS.aGeneratedFiles[1] STORE "" TO THIS.aGeneratedFiles[1] THIS.nLinkField=0 &&reset * Let's first cleanup field list ACOPY(this.aFieldList,laTmpFields) IF !THIS.CleanFields(@laTmpFields) &&no valid fields (GENERAL or MEMO only) RETURN .F. ENDIF ACOPY(laTmpFields,this.aFieldList) this.nFieldCount = ALEN(laTmpFields,1) THIS.cCSVFile = FORCEEXT(THIS.cOutFile,"CSV") THIS.cCSVFile2="" COPY TO (THIS.cCSVFile) TYPE CSV THIS.UpdateGenFiles(THIS.cCSVFile) THIS.UpdateGenFiles(THIS.cOutFile) this.Body.AddItem([

]) DO CASE CASE THIS.nTableStyle = 100 && List view IF RECCOUNT()>THIS.nDataPageSize THIS.Add_PageButtons() ENDIF THIS.Add_DataItem() THIS.Add_RepeatTable(@laTmpFields) THIS.Add_Frame_Script(.T.) THIS.Body.AddGenHTMLField("HTML",,"DataPaging") THIS.Add_RepeatTable_Script() CASE THIS.nTableStyle = 101 && Detail view THIS.Add_NavButtons() THIS.Add_DataItem() THIS.Add_Fields(@laTmpFields) THIS.Add_NavButton_Script() CASE THIS.nTableStyle = 102 && Hierarchical view ACOPY(laTmpFields,laTmpFields2) lcPath = JUSTPATH(THIS.cOutFile) IF EMPTY(lcPath) lcPath = JUSTPATH(FULL(THIS.cOutFile)) ENDIF THIS.cOutFile_Frame0 = lcPath+"\"+JUSTSTEM(THIS.cOutFile)+"_0.HTM" THIS.cOutFile_Frame1 = lcPath+"\"+JUSTSTEM(THIS.cOutFile)+"_1.HTM" THIS.cOutFile_Frame2 = lcPath+"\"+JUSTSTEM(THIS.cOutFile)+"_2.HTM" THIS.UpdateGenFiles(THIS.cOutFile_Frame0) THIS.UpdateGenFiles(THIS.cOutFile_Frame1) THIS.UpdateGenFiles(THIS.cOutFile_Frame2) * Check for different parent table * To use 1-Many, must have both cParentSource and cDisplayField THIS.cCSVFile2="" IF !EMPTY(THIS.cParentSource) AND !EMPTY(THIS.cDisplayField) IF !FILE(THIS.cParentSource) IF EMPTY(THIS.cParentDBC) RETURN .F. ENDIF OPEN DATABASE (THIS.cParentDBC) &&set current database ENDIF lnSaveArea = SELECT() SELECT 0 lcDisplayfield=THIS.cDisplayField SELECT &lcDisplayfield.,0 FROM (THIS.cParentSource); INTO CURSOR SYS(2015) IF !USED() SELECT (lnSaveArea) RETURN .F. ENDIF THIS.cCSVFile2 = lcPath +"\"+JUSTSTEM(THIS.cOutFile)+"_2.CSV" COPY TO (THIS.cCSVFile2) TYPE CSV THIS.UpdateGenFiles(THIS.cCSVFile2) DIMENSION laTmpFields[1,2] laTmpFields[1,1] = THIS.cDisplayField SELECT (lnSaveArea) ENDIF * Frame 1 with List View THIS.Add_DataItem(THIS.cCSVFile2) THIS.Add_Caption(JUSTSTEM(IIF(EMPTY(THIS.cParentSource),THIS.cChildAlias,THIS.cParentSource))) THIS.Add_RepeatTable(@laTmpFields,.T.) IF RECCOUNT()>THIS.nDataPageSize THIS.Add_PageButtons(.T.) THIS.Body.AddGenHTMLField("HTML",,"DataPaging") ENDIF THIS.Add_RepeatTable_Script() THIS.Add_Frame_Script() THIS.SaveFile(THIS.cOutFile_Frame1) lcSaveColor=THIS.Body.BgColor lcSaveImage=THIS.Body.background lcSaveTitle=THIS.Head.Title.Item * Get link field IF !EMPTY(THIS.cCSVFile2) &&1Many -- need to figure out link field IF EMPTY(THIS.cLinkField) &&assume same name used for link fields THIS.cLinkField = THIS.cDisplayField ENDIF FOR i = 1 TO ALEN(laTmpFields2,1) IF UPPER(laTmpFields2[m.i,1]) == UPPER(ALLTRIM(THIS.cLinkField)) THIS.nLinkField = m.i-1 &&need to -1 since ADO collections are zero-based EXIT ENDIF ENDFOR ENDIF * Frame 2 with Detail View/List View THIS.ReleaseItems() THIS.SetItems THIS.Add_DataItem() IF !EMPTY(THIS.cParentSource) THIS.Add_Caption(JUSTSTEM(THIS.cChildAlias)) ENDIF IF THIS.lOneToMany AND !EMPTY(THIS.cCSVFile2) THIS.Add_RepeatTable(@laTmpFields2) THIS.Add_RepeatTable_Script() THIS.Add_Frame_Script(.T.) ELSE THIS.Add_Fields(@laTmpFields2) ENDIF THIS.Add_Filter_Script() THIS.Body.BgColor=lcSaveColor THIS.Body.background=lcSaveImage THIS.Head.Title.AddText(lcSaveTitle) THIS.SaveFile(THIS.cOutFile_Frame2) * Create Frame0 THIS.ReleaseItems() THIS.SetItems THIS.Body.BgColor=lcSaveColor THIS.Body.background=lcSaveImage THIS.Head.Title.AddText(lcSaveTitle) THIS.SaveFile(THIS.cOutFile_Frame0) * Create Frameset THIS.lBodyTag = .F. THIS.ReleaseItems() THIS.SetItems THIS.MakeFrameset() THIS.Head.Title.AddText(lcSaveTitle) THIS.SaveFile(THIS.cOutFile) ENDCASE * if run from Wizard, reset to original values IF VARTYPE(oWizard)="O" THIS.ResetDefaults() ENDIF ENDPROC PROCEDURE makeframeset LOCAL lnFramePercent lnFramePercent = THIS.nFramePercent IF VARTYPE(lnFramePercent)#"N" OR !BETWEEN(lnFramePercent,0,100) lnFramePercent = 20 ENDIF this.AddItem([]) this.AddItem([ ]) this.AddItem([ ]) this.AddItem([ ]) this.AddItem([ ]) this.AddItem([ ]) this.AddItem([]) ENDPROC PROCEDURE add_repeattable LPARAMETER taFields,tlHierView LOCAL lnCount,lcField,lcStr,lnFieldCount,oTag,lcCaption,lnPos,lcExact EXTERNAL ARRAY taFields * Add table tag this.oGenTag = this.Body.AddTag("table") this.oGenTag.ID = THIS.cTableID this.oGenTag.datasrc = "#"+THIS.cDataSrc this.oGenTag.datapagesize = TRANS(THIS.nDataPageSize) IF !EMPTY(THIS.cRepeatTableStyle) * ex. "color: maroon; font-size: 10pt; font-family: Arial" this.oGenTag.style = THIS.cRepeatTableStyle ENDIF * Add table header tag oTag = this.oGenTag.AddTag("thead") oTag.ID = "tblvfpdataheader" oTag = oTag.AddTag("tr") * Add table header fields lnFieldCount = IIF(tlHierView,1,ALEN(taFields,1)) IF tlHierView AND EMPTY(THIS.cDisplayField) THIS.cDisplayField=taFields[1,1] ENDIF FOR lnCount = 1 TO lnFieldCount IF tlHierView * Need ASCAN here lcCaption = THIS.cDisplayField lcExact = SET("EXACT") SET EXACT ON lnPos = ASCAN(taFields,UPPER(THIS.cDisplayField)) IF lnPos>0 AND (lnPos+4)<=ALEN(taFields) lcCaption = taFields[lnPos+4] ENDIF SET EXACT &lcExact ELSE lcCaption = taFields[lnCount,5] ENDIF lcField = IIF(tlHierView,THIS.cDisplayField,taFields[lnCount,1]) oTag.AddItem([

"+PROPER(lcCaption)+; [
]) ENDFOR * Add table body tag oTag = this.oGenTag.AddTag("tbody") oTag=oTag.AddTag("tr") oTag.onclick = "selectrecord(this)" * Add table body fields FOR lnCount = 1 TO lnFieldCount lcField = IIF(tlHierView,THIS.cDisplayField,taFields[lnCount ,1]) oTag.AddItem([ ]) ENDFOR this.Body.AddTag("p") ENDPROC PROCEDURE add_repeattable_script this.Body.AddGenHTMLField("HTML",,"SortTableColumn") ENDPROC PROCEDURE add_fields LPARAMETER taFields LOCAL lnCount,lcField,llFirstField,lcFieldcaption EXTERNAL ARRAY taFields llFirstField=.T. this.oGenTag = this.Body.AddTag("Div") IF !EMPTY(THIS.cRepeatTableStyle) this.oGenTag.style = THIS.cRepeatTableStyle ENDIF FOR lnCount = 1 TO ALEN(taFields,1) IF !llFirstField this.oGenTag.AddItem([
]) ENDIF llFirstField=.F. lcField = taFields[lnCount,1] lcFieldcaption = PROPER(taFields[lnCount,5]) this.oGenTag.AddItem([]+lcFieldcaption +[: ]) this.oGenTag.AddItem([]) ENDFOR ENDPROC PROCEDURE add_dataitem LPARAMETER tcCSVFile LOCAL lcStr IF VARTYPE(tcCSVFile)#"C" OR !FILE(tcCSVFile) tcCSVFile = THIS.cCSVFile ENDIF tcCSVFile = JUSTFNAME(tcCSVFile) * add data control object id tag lcStr = CR_LF+; [] + CR_LF+CR_LF this.body.AddItem(lcStr) ENDPROC PROCEDURE add_pagebuttons * Add navigation buttons LPARAMETER tlSkipFrame THIS.lSkipFrame = tlSkipFrame this.Body.AddGenHTMLField("HTML",,"PageButtons") ENDPROC PROCEDURE add_navbuttons this.Body.AddGenHTMLField("HTML",,"NavButtons") ENDPROC PROCEDURE add_frame_script * Add navigation button script LPARAMETER tlSkipFrame THIS.lSkipFrame = tlSkipFrame this.Body.AddGenHTMLField("HTML",,"FrameScript") ENDPROC PROCEDURE add_filter_script this.Body.AddGenHTMLField("HTML",,"FilterScript") ENDPROC PROCEDURE add_navbutton_script this.Body.AddGenHTMLField("HTML",,"NavButtonsCode") ENDPROC PROCEDURE cleanfields LPARAMETER taFields EXTERNAL ARRAY taFields * This routine checks fields array and removes any "M" or "G" which are not support by * the Tabular Data Control. We assume array is 2D as follows * 1 - field name * 2 - field type LOCAL i FOR i = ALEN(taFields,1) TO 1 STEP -1 IF INLIST(taFields[m.i,2],"G","M","U") THIS.DelARow(@taFields,i) ENDIF ENDFOR RETURN !EMPTY(taFields[1]) &&any valid fields left ENDPROC PROCEDURE updategenfiles LPARAMETER tcFileName IF EMPTY(tcFileName) RETURN ENDIF IF !EMPTY(THIS.aGeneratedFiles[1]) DIMENSION THIS.aGeneratedFiles[ALEN(THIS.aGeneratedFiles)+1] ENDIF THIS.aGeneratedFiles[ALEN(THIS.aGeneratedFiles)]=tcFileName ENDPROC PROCEDURE delarow * Generic routine to delete an array element. If the array is * multi-dimensional, then a whole row is deleted. * * aArray- array to scan * wziRow - row to delete LPARAMETERS aArray,wziRow LOCAL nColumns IF ALEN(aArray,1)0 THIS.pf1.pg4.cboDisplayField.Value = THIS.pf1.pg4.cboDisplayField.List[1] ENDIF THIS.pf1.pg4.cboChildField.Enabled = .T. THIS.pf1.pg4.chkOneMany.Enabled = .T. ENDIF ENDPROC PROCEDURE Destroy SELECT (THIS.oEngine.cWizAlias) DoDefault() ENDPROC PROCEDURE Load DoDefault() THIS.RegisterSetting("cDisplayField","THIS.pf1.pg4.cboDisplayField.Value","cDisplayField",,.T.) THIS.RegisterSetting("lOneToMany","THIS.pf1.pg4.chkOneMany.Value","lOneToMany",,.T.,,1) THIS.RegisterSetting("cParentDBC","THIS.cParentDBC","cParentDBC",,.T.) THIS.RegisterSetting("cParentSource","THIS.cParentSource","cParentSource",,.T.) THIS.RegisterSetting("cLinkField","THIS.pf1.pg4.cboChildField.Value","cLinkField",,.T.) THIS.RegisterSetting("cParentAlias","THIS.cParentAlias","cParentAlias") THIS.RegisterSetting("cChildAlias","THIS.cChildAlias","cChildAlias",,.T.) THIS.RegisterSetting("lCaption","THIS.pf1.pg3.chkCaptions.Value","lCaption",,.T.,,1) ENDPROC PROCEDURE Show LPARAMETERS nstyle LOCAL i,lcValue DoDefault() FOR i = 1 TO ALEN(THIS.oEngine.aWizFields) * Need to skip for Memo,General types THIS.pf1.pg4.cboChildField.AddItem(THIS.oEngine.aWizFields[m.i]) ENDFOR IF THIS.pf1.pg4.cboChildField.ListCount>0 AND EMPTY(THIS.pf1.pg4.cboChildField.Value) THIS.pf1.pg4.cboChildField.Value = THIS.pf1.pg4.cboChildField.List[1] ELSE * Since values are set in Init before combo filled, we need to reset value here. THIS.pf1.pg4.cboChildField.Value = THIS.pf1.pg4.cboChildField.Value ENDIF lcValue=THIS.pf1.pg4.cboDisplayField.Value THIS.RefreshControls() THIS.pf1.pg4.cboDisplayField.Value=lcValue ENDPROC PROCEDURE Init DoDefault() THIS.Pf1.Pg1.Enabled = .F. THIS.UnRegisterSetting("bordercolor") THIS.UnRegisterSetting("bgcolor") THIS.UnRegisterSetting("background") THIS.UnRegisterSetting("border") IF USED() THIS.cChildAlias = JUSTSTEM(CURSORGETPROP("SourceName")) ENDIF ENDPROC  a H H %@?UT%C #( ,CC   %T T -T- F(C.b"%CCC /MGU?.CCC / % )TC T aTaUITHISPF1PG4TXTTABLEVALUE CPARENTALIASCBODISPLAYFIELDCLEARTHISFORM CBOCHILDFIELD LISTCOUNTADDITEMLISTENABLED CHKONEMANYF CUTHISOENGINE CWIZALIAS? CTC cDisplayField"THIS.pf1.pg4.cboDisplayField.Value cDisplayFieldaMC lOneToManyTHIS.pf1.pg4.chkOneMany.Value lOneToManya;C cParentDBCTHIS.cParentDBC cParentDBCaDC cParentSourceTHIS.cParentSource cParentSourceaLC cLinkField THIS.pf1.pg4.cboChildField.Value cLinkFielda?C cParentAliasTHIS.cParentAlias cParentAlias>C cChildAliasTHIS.cChildAlias cChildAliasaJClCaptionTHIS.pf1.pg3.chkCaptions.ValuelCaptionaUTHISREGISTERSETTING2  C(C`&CC  2% C )T C %T  T CT UNSTYLEILCVALUETHISOENGINE AWIZFIELDSPF1PG4 CBOCHILDFIELDADDITEM LISTCOUNTVALUELISTCBODISPLAYFIELDREFRESHCONTROLS CT-C bordercolorCbgcolorC backgroundCborder %C TCC SourceNameUTHISPF1PG1ENABLEDUNREGISTERSETTING CCHILDALIASrefreshcontrols,DestroyLoadShow;Init1q1!1AQqqa!AAAAqqA33AA3qbA"RA3AqaA2]{g!' -6' / B)H Icparentalias cparentdbc cparentsource cchildalias *refreshcontrols checkboxcheckbox chkCaptions_tabhieroptions.pf1.pg3Top = 120 Left = 11 Height = 15 Width = 138 FontName = "MS Sans Serif" FontSize = 8 BackStyle = 0 Caption = "Show \